拜讀黑暗執行緒使用yield return方式後,想說自己可以練習不用yield return的方式暴力破解看看,並記錄自己解題過程。
從陣列 [A, B, B, C, X, C, C, B, B, D, D, D] 挑出 [B, B]、[C, C]、[B, B]、[D, D, D] 四個群組。
	var raw = "A,B,B,C,X,C,C,B,B,D,D,D".Split(','); //測試資料
	var tempList = new List<string>() { raw.First() }; //把第一個字元塞進tempList,當作下一個比較基準
	var outputList = new List<string>(); //最後顯示的list
		
	foreach(var item in raw.Skip(1)) //從第二個字元開始(因為第一個字元已經塞進tempList)
	{
		if (tempList.Last() == item)
        {
            tempList.Add(item);
        }
		else
		{
            if (tempList.Count() > 1) //有兩個以上相同的字元就存進outputList
                outputList.AddRange(tempList);
            tempList.Clear(); //清空tempList
            tempList.Add(item); //再把目前字元存在tempList,當作下一個比較基準
		}
	}
	
    if (tempList.Count() > 1) //有兩個以上相同的字元就存進outputList
        outputList.AddRange(tempList);	
	outputList.Dump("outputList");

參考資料來源:
黑暗執行緒 C# 練習 - 在陣列中找出連續重複出現項目